<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // ES6箭头函数 ：赋值式函数可以改成箭头函数 ,声明式函数也可以改写成箭头函数
        // 箭头函数是赋值式的，所以没有只有变量提升，只能在箭头函数定义完后，在调用
        // 当函数只有一个形参时，可以省略小括号
        // 当函数没有大括号时，隐式自动返回值


        // 带返还值的函数
        // const fn = function(v){
        //     return v + 1;
        // }
        // 箭头函数
        const fn = v=>(v+1);
        
        let fun = a => a;
        console.log(fun(3));

        // 返回一个对象，用小括号（）括起来，不然箭头函数识别不了是函数大括号，还是对象大括号
        let fun2 = () => ({name:'张三'});
        let fun3 = () => {name:'张三'};
        console.log(fun2());    //{name: '张三'}
        console.log(fun3());    //undefined

        // arguments 箭头函数内部没有伪数组 arguments,可以通过rest 剩余参数代替 arguments
        let fun4 = (...arg) => {
            // console.log(arguments); //会报错
            console.log(arg);
        }
        fun4(1, 2);

        function fun5() {
            console.log(arguments);
        }
        fun5();
        // let fun1 = (a, b) =>  a + b
        
        // console.log(fun1(1, 4));


        // function fn() {
        //     console.log('aaa');
        // }

        // let fn1 = () => {
        //     console.log('aaa');
        // }
        // fn1();
    </script>
</body>
</html>